package com.starrtc.demo.imclient.kcp.usmp;


import com.starrtc.demo.imclient.util.JsonUtil;

/**
 * 定义一个分布式服务的编程范式.
 */
public interface IDistributeService {
    /**
     *服务的配置
     */
    public abstract class Config
    {
//        public abstract int getServiceIndex();

        public static <T> T fromJson(String json ,Class<T> clazz){
            return JsonUtil.jsonToPojo(json,clazz);
        }
        public String toString(){
            return JsonUtil.pojoToJson(this);
        }

    }
    /**
     * 服务启动
     * @param config
     */
    void start(Config config);

    /**
     * 服务停止
     */
    void stop();


}
